local c = {}

c.amber = {255, 191, 0}
c.apricot = {229, 127, 66}
c.aqua = {0, 255, 153}
c.azure = {0, 127, 255}
c.black = {0, 0, 0}
c.blue = {0, 0, 255}
c.brass = {191, 151, 96}
c.brightblue = {0, 178, 255}
c.brown = {94, 18, 4}
c.celadon = {172, 255, 175}
c.chartreuse = {127, 255, 0}
c.copper = {197, 136, 124}
c.crimson = {255, 0, 63}
c.cyan = {0, 255, 255}
c.darkAmber = {191, 143, 0}
c.darkAzure = {0, 95, 191}
c.darkBlue = {0, 0, 191}
c.darkChartreuse = {95, 191, 0}
c.darkCrimson = {191, 0, 47}
c.darkCyan = {0, 191, 191}
c.darkerAmber = {127, 95, 0}
c.darkerAzure = {0, 63, 127}
c.darkerBlue = {0, 0, 127}
c.darkerChartreuse = {63, 127, 0}
c.darkerCrimson = {127, 0, 31}
c.darkerCyan = {0, 127, 127}
c.darkerFlame = {127, 31, 0}
c.darkerFuschia = {127, 0, 127}
c.darkerGreen = {0, 127, 0}
c.darkerGrey = {63, 63, 63}
c.darkerHan = {31, 0, 127}
c.darkerLime = {95, 127, 0}
c.darkerMagenta = {127, 0, 95}
c.darkerOrange = {127, 63, 0}
c.darkerPink = {127, 0, 63}
c.darkerPurple = {95, 0, 127}
c.darkerRed = {127, 0, 0}
c.darkerSea = {0, 127, 63}
c.darkerSepia = {63, 50, 31}
c.darkerSky = {0, 95, 127}
c.darkerTurquoise = {0, 127, 95}
c.darkerViolet = {63, 0, 127}
c.darkerYellow = {127, 127, 0}
c.darkestAmber = {63, 47, 0}
c.darkestAzure = {0, 31, 63}
c.darkestBlue = {0, 0, 63}
c.darkestChartreuse = {63, 63, 0}
c.darkestCrimson = {63, 0, 15}
c.darkestCyan = {0, 63, 63}
c.darkestFlame = {63, 15, 0}
c.darkestFuschia = {63, 0, 63}
c.darkestGreen = {0, 63, 0}
c.darkestGrey = {31, 31, 31}
c.darkestHan = {15, 0, 63}
c.darkestLime = {47, 63, 0}
c.darkestMagenta = {63, 0, 47}
c.darkestOrange = {63, 31, 0}
c.darkestPink = {63, 0, 31}
c.darkestPurple = {47, 0, 63}
c.darkestRed = {63, 0, 0}
c.darkestSea = {0, 63, 31}
c.darkestSepia = {31, 24, 15}
c.darkestSky = {0, 47, 63}
c.darkestTurquoise = {0, 63, 47}
c.darkestViolet = {31, 0, 63}
c.darkestYellow = {63, 63, 0}
c.darkFlame = {191, 47, 0}
c.darkFuschia = {191, 0, 191}
c.darkGreen = {0, 191, 0}
c.darkgreen = {9, 119, 7}
c.darkgrey = {53, 53, 53}
c.darkGrey = {95, 95, 95}
c.darkHan = {47, 0, 191}
c.darkLime = {143, 191, 0}
c.darkMagenta = {191, 0, 143}
c.darkOrange = {191, 95, 0}
c.darkPink = {191, 0, 95}
c.darkPurple = {143, 0, 191}
c.darkred = {112, 6, 6}
c.darkRed = {191, 0, 0}
c.darkSea = {0, 191, 95}
c.darkSepia = {94, 75, 47}
c.darkSky = {0, 143, 191}
c.darkTurquoise = {0, 191, 143}
c.darkViolet = {95, 0, 191}
c.darkYellow = {191, 191, 0}
c.desaturatedAmber = {127, 111, 63}
c.desaturatedAzure = {63, 95, 127}
c.desaturatedBlue = {63, 63, 127}
c.desaturatedChartreuse = {95, 127, 63}
c.desaturatedCrimson = {127, 63, 79}
c.desaturatedCyan = {63, 127, 127}
c.desaturatedFlame = {127, 79, 63}
c.desaturatedFuschia = {127, 63, 127}
c.desaturatedGreen = {63, 127, 63}
c.desaturatedHan = {79, 63, 127}
c.desaturatedLime = {111, 127, 63}
c.desaturatedMagenta = {127, 63, 111}
c.desaturatedOrange = {127, 95, 63}
c.desaturatedPink = {127, 63, 95}
c.desaturatedPurple = {111, 63, 127}
c.desaturatedRed = {127, 63, 63}
c.desaturatedSea = {63, 127, 95}
c.desaturatedSky = {63, 111, 127}
c.desaturatedTurquoise = {63, 127, 111}
c.desaturatedViolet = {95, 63, 127}
c.desaturatedYellow = {127, 127, 63}
c.flame = {255, 63, 0}
c.fuschia = {255, 0, 255}
c.gold = {229, 191, 0}
c.green = {0, 255, 0}
c.grey = {127, 127, 127}
c.grey = {132, 132, 132}
c.han = {63, 0, 255}
c.lightAmber = {255, 207, 63}
c.lightAzure = {63, 159, 255}
c.lightBlue = {63, 63, 255}
c.lightChartreuse = {159, 255, 63}
c.lightCrimson = {255, 63, 111}
c.lightCyan = {63, 255, 255}
c.lighterAmber = {255, 223, 127}
c.lighterAzure = {127, 191, 255}
c.lighterBlue = {127, 127, 255}
c.lighterChartreuse = {191, 255, 127}
c.lighterCrimson = {255, 127, 159}
c.lighterCyan = {127, 255, 255}
c.lighterFlame = {255, 159, 127}
c.lighterFuschia = {255, 127, 255}
c.lighterGreen = {127, 255, 127}
c.lighterGrey = {191, 191, 191}
c.lighterHan = {159, 127, 255}
c.lighterLime = {223, 255, 127}
c.lighterMagenta = {255, 127, 223}
c.lighterOrange = {255, 191, 127}
c.lighterPink = {255, 127, 191}
c.lighterPurple = {223, 127, 255}
c.lighterRed = {255, 127, 127}
c.lighterSea = {127, 255, 191}
c.lighterSepia = {191, 171, 143}
c.lighterSky = {127, 223, 255}
c.lighterTurquoise = {127, 255, 223}
c.lighterViolet = {191, 127, 255}
c.lighterYellow = {255, 255, 127}
c.lightestAmber = {255, 239, 191}
c.lightestAzure = {191, 223, 255}
c.lightestBlue = {191, 191, 255}
c.lightestChartreuse = {223, 255, 191}
c.lightestCrimson = {255, 191, 207}
c.lightestCyan = {191, 255, 255}
c.lightestFlame = {255, 207, 191}
c.lightestFuschia = {255, 191, 255}
c.lightestGreen = {191, 255, 191}
c.lightestGrey = {223, 223, 223}
c.lightestHan = {207, 191, 255}
c.lightestLime = {239, 255, 191}
c.lightestMagenta = {255, 191, 239}
c.lightestOrange = {255, 223, 191}
c.lightestPink = {255, 191, 223}
c.lightestPurple = {239, 191, 255}
c.lightestRed = {255, 191, 191}
c.lightestSea = {191, 255, 223}
c.lightestSepia = {222, 211, 195}
c.lightestSky = {191, 239, 255}
c.lightestTurquoise = {191, 255, 239}
c.lightestViolet = {223, 191, 255}
c.lightestYellow = {255, 255, 191}
c.lightFlame = {255, 111, 63}
c.lightFuschia = {255, 63, 255}
c.lightgray = {98, 198, 198}
c.lightGreen = {63, 255, 63}
c.lightGrey = {159, 159, 159}
c.lightHan = {111, 63, 255}
c.lightLime = {207, 255, 63}
c.lightMagenta = {255, 63, 207}
c.lightOrange = {255, 159, 63}
c.lightPink = {255, 63, 159}
c.lightPurple = {207, 63, 255}
c.lightRed = {255, 63, 63}
c.lightSea = {63, 255, 159}
c.lightSepia = {158, 134, 100}
c.lightSky = {63, 207, 255}
c.lightTurquoise = {63, 255, 207}
c.lightViolet = {159, 63, 255}
c.lightYellow = {255, 255, 63}
c.lime = {191, 255, 0}
c.magenta = {255, 0, 191}
c.mediumgrey = {94, 94, 94}
c.navyblue = {3, 27, 76}
c.orange = {255, 119, 0}
c.orange = {255, 127, 0}
c.orangeyellow = {255, 157, 0}
c.peach = {255, 159, 127}
c.pink = {255, 0, 127}
c.pink = {255, 0, 187}
c.purple = {187, 0, 255}
c.purple = {191, 0, 255}
c.red = {255, 0, 0}
c.redorange = {255, 46, 0}
c.sea = {0, 255, 127}
c.sepia = {127, 101, 63}
c.silver = {203, 203, 203}
c.sky = {0, 191, 255}
c.teal = {7, 119, 117}
c.turquoise = {0, 255, 191}
c.violet = {127, 0, 255}
c.violetblue = {0, 42, 255}
c.white = {255, 255, 255}
c.yellow = {255, 250, 0}
c.yellow = {255, 255, 0}
c.yellowgreen = {221, 255, 0}



local meta = {}
local Color = {}

meta.__index = function(object, index)
    local result = nil
    if c[index] then
        result = Color:normalize(c[index])
    else
        print(string.format("The color '%s' does not exist!", index))
    end
    return result
end


function Color:Color(color)
    if Color[color] then
        return Color:normalize(Color[color])
    else
        return error('This color does not exist!')
    end
end


function Color:normalize(color)
    -- is normalization needed?
    if true then
        return {color[1]/255, color[2]/255, color[3]/255}
    else
        return {color[1], color[2], color[3]}
    end
end


setmetatable(Color, meta)

return Color
